<?php

require_once 'BaseModel.php';

/**
 * @access public
 * @author Hugo Manouvrier, Kevin Salnot, Gregory Michelotti, Joana Santos
 * @package Mapping_Dead.Modèle
 */
class Personnage extends BaseModel {

    /**
     * @AttributeType int
     */
    public $idPersonnage;

    /**
     * @AttributeType int
     */
    public $sourcePersonnage;

    /**
     * @AttributeType String
     */
    public $nomPersonnage;

    /**
     * @AttributeType String
     */
    public $prenomPersonnage;

    /**
     * @AttributeType String
     */
    public $sexePersonnage;

    /**
     * @AttributeType int
     */
    public $idEpisode;

    /**
     * @AttributeType String
     */
    public $descriptionPersonnage;

    /**
     * @AttributeType String
     */
    public $acteur;

    /**
     * @AttributeType String
     */
    public $acteurPagePersonnel;

    /**
     * @AttributeType String
     */
    public $photo;

    /**
     * @AssociationType Mapping Dead.Modèle.Episode
     * @AssociationMultiplicity 1..*
     */
//    protected $listeApparition = array();

    /**
     * @access public
     * @param int id
     * @ParamType id int
     */
    function __construct($id = null) {
        parent::__construct($id);
    }

    public function verifExiste($nomPerso, $prenomPerso) {
        $args = array('nomPersonnage'=>$nomPerso,'prenomPersonnage'=>$prenomPerso);
        return $this->getElement($args);
    }

    public function ajouterPersonnage($nomPerso, $prenomPerso, $sexePerso, $episodeApp, $descrPerso, $acteurPerso, $pagePersoActeur) {
        $args = array('sourcePersonnage'=>1,'nomPersonnage'=>$nomPerso,'prenomPersonnage'=>$prenomPerso,'sexePersonnage'=>$sexePerso,'idEpisode'=>$episodeApp,'descriptionPersonnage'=>$descrPerso,'acteur'=>$acteurPerso,'acteurPagePersonnel'=>$pagePersoActeur);
        return $this->addElement($args);
    }

    public function getPersonnage($idPersonnage) {
        return $this->getById($idPersonnage);
    }

    /**
     * @access public
     * @return int
     * @ReturnType int
     */
    public function getIdPersonnage() {
        return $this->idPersonnage;
    }

    public function setIdPersonnage($idPersonnage) {
        $this->idPersonnage = $idPersonnage;
    }

    /**
     * @access public
     * @return String
     * @ReturnType String
     */
    public function getNomPersonnage() {
        return $this->nomPersonnage;
    }

    /**
     * @access public
     * @param String nom
     * @return void
     * @ParamType nom String
     * @ReturnType void
     */
    public function setNomPersonnage($nomPersonnage) {
        $this->nomPersonnage = $nomPersonnage;
    }
    
    /**
     * @access public
     * @return String
     * @ReturnType String
     */
    public function getPrenomPersonnage() {
        return $this->prenomPersonnage;
    }
    
    /**
     * @access public
     * @param String nom
     * @return void
     * @ParamType nom String
     * @ReturnType void
     */
    public function setPrenomPersonnage($prenomPersonnage) {
        $this->prenomPersonnage = $prenomPersonnage;
    }

    /**
     * @access public
     * @return String
     * @ReturnType String
     */
    public function getDescription() {
        return $this->description;
    }

    /**
     * @access public
     * @param String description
     * @return void
     * @ParamType description String
     * @ReturnType void
     */
    public function setDescription($description) {
        $this->description = $description;
    }

    /**
     * @access public
     * @return int
     * @ReturnType int
     */
    public function getPremierEpisode() {
        return $this->premierEpisode;
    }

    /**
     * @access public
     * @param int premierEpisode
     * @return void
     * @ParamType premierEpisode int
     * @ReturnType void
     */
    public function setPremierEpisode($premierEpisode) {
        $this->premierEpisode = $premierEpisode;
    }

    /**
     * @access public
     * @return String[]
     * @ReturnType String[]
     */
    public function afficheListePersonnage() {
        return parent::findAll();
    }

}
